"""
 encoding    : utf-8
 @File       : login_test.py
 @Author     : sugar 
 @Version    :
 @Description:
 @Date       : 2024/07/10
"""
from selenium import webdriver
from auto_code.pages.appraisal_power.login_page import *
import pytest
from auto_code.common.get_data import *

'''获取测试数据'''
data = Get_data()
'''获取登录反向测试数据'''
login_data = data.get_data_login_fail()
'''获取修改密码正向测试数据'''
change_passwd_right = data.change_passwd_right()
'''获取修改密码反向测试数据'''
change_passwd_fail = data.change_passwd_fail()


@pytest.fixture(scope='function', autouse=False)
def my_fixture1():
    driver = webdriver.Firefox()
    global my_login
    my_login = Login_pade(driver)
    my_login.login_ym()
    yield
    my_login.close_ym()


class Test_login:

    def test001_login_right(self, my_fixture1):
        """登录正向"""
        my_login.login('admin', '123456', '8888')
        my_login.login_right('admin')
        my_login.screenshot("登录正向")


    @pytest.mark.parametrize(argnames=('user', 'passwd', 'yzm'), argvalues=login_data)
    def test002_login_fail(self, my_fixture1, user, passwd, yzm):
        """登录反向"""
        my_login.login(user, passwd, yzm)
        my_login.login_fail()
        my_login.screenshot("登录反向")

    def test003_login_rem_pass(self, my_fixture1):
        """记住密码"""
        my_login.login_rem_pass('admin', '123456', '8888')
        my_login.login_right('admin')
        my_login.screenshot("记住密码")

    def test004_login_out(self,my_fixture1):
        """退出登录"""
        my_login.login('admin', '123456', '8888')
        my_login.login_out()
        my_login.login_fail()
        my_login.screenshot("退出登录")

    @pytest.mark.parametriz(argnames=('user', 'passwd', 'new_passwd', 'anew_passwd', 'p_name'),
                             argvalues=change_passwd_right)
    def test005_change_passwd(self, my_fixture1, user, passwd, new_passwd, anew_passwd,p_name):
        """修改密码正向"""
        my_login.login(user, passwd, '8888')
        my_login.change_passwd(passwd, new_passwd, anew_passwd)
        my_login.clear_user_passwd()
        my_login.login(user, new_passwd, '8888')
        my_login.login_right(user)
        my_login.screenshot(p_name)

    @pytest.mark.parametrize(argnames=('user', 'passwd', 'new_passwd', 'anew_passwd', 'p_name'),
                             argvalues=change_passwd_fail)
    def test006_change_passwd(self, my_fixture1, user, passwd, new_passwd, anew_passwd,p_name):
        """修改密码反向"""
        my_login.login(user, passwd, '8888')
        my_login.change_passwd(passwd, new_passwd, anew_passwd)
        my_login.login_right(user)
        my_login.screenshot(p_name)
